<?php
namespace app\common\model;

// use think\Model;

class Cate extends \app\common\model\Base
{

    public $tree ;


   
    // 模型初始化
    protected static function init()
    {
        parent::init();
        // //TODO:初始化内容
        // echo '888';
        // $list  = $this->XXXXX();
    }

    // 自定义初始化
    protected function initialize()
    {
        //需要调用`Model`的`initialize`方法
        parent::initialize();
        //TODO:自定义的初始化
        $list  = $this->getColumnCache();
        $this->tree = new \com\Tree( $list  ,'id' ,'pid' ,  'catename' , '0' );
        // 不要在模块中 定义变量 会写入数据库的
        // 可以在修改的时候 使用  ->allowField(true) 过滤掉 数据中没有的字段
        // $this->model->allowField(true)->isUpdate(!!$data['id'])->validate(true)->save($data);
    }

    //类型自动转换
	protected $type = [
        'id'    =>  'integer',                      
        // 'name'     =>  'string',               //配置名称    
    ];

    //数据完成
    // protected $auto = array('name', 'update_time', 'status'=>1);
    // protected $insert = array('create_time'); 
    // protected $update = [];  
    

    // protected function setNameAttr($value){
    //     return strtolower($value);
    // }


    // protected function getTypeTextAttr($value, $data){
    //     $type = config('config_type_list');  
    //     $type_text = explode(',', $type[$data['type']]);
    //     return $type_text[0];
    // }
    // 
    // 
    

    public function getColumnCache(){
        return $this->getColumn();
    }
    public function getColumn(){
        return $this->order('sort asc,id asc')->column('*', 'id');
    }


    public function one($id){

            return  $this->field('a.* , b.name as pname')
                    ->alias('a')
                    ->join('__ROLE__ b','a.pid = b.id','left')
                    ->find($id);
    }


    public function getlist(){
        return  $this->tree->get_tree_list();
    }


    public function getTreeList(){
        return  $this->tree->get_tree_list();
    }



    /**
     * 根据配置类型解析配置
     * @param  integer $type  配置类型
     * @param  string  $value 配置值
     * @author 
     */
    private function parse($type, $value){
        switch ($type) {
            case 'textarea': //解析数组
            $array = preg_split('/[,;\r\n]+/', trim( $value , ",;\r\n"));
            if(strpos($value,':')){
                $value  = array();
                foreach ($array as $val) {
                    $list = explode(':', $val);
                    if(isset($list[2])){
                        $value[$list[0]]   = $list[1].','.$list[2];
                    }else{
                        $value[$list[0]]   = $list[1];
                    }
                }
            }else{
                $value =    $array;
            }
            break;
        }
        return $value;
    }



    
}